/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: ficus-onnx.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "ficus-onnx.pb-c.h"
void   ficus_onnx__attribute_proto__init
                     (FicusOnnx__AttributeProto         *message)
{
  static const FicusOnnx__AttributeProto init_value = FICUS_ONNX__ATTRIBUTE_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__attribute_proto__get_packed_size
                     (const FicusOnnx__AttributeProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__attribute_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__attribute_proto__pack
                     (const FicusOnnx__AttributeProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__attribute_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__attribute_proto__pack_to_buffer
                     (const FicusOnnx__AttributeProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__attribute_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__AttributeProto *
       ficus_onnx__attribute_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__AttributeProto *)
     protobuf_c_message_unpack (&ficus_onnx__attribute_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__attribute_proto__free_unpacked
                     (FicusOnnx__AttributeProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__attribute_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__value_info_proto__init
                     (FicusOnnx__ValueInfoProto         *message)
{
  static const FicusOnnx__ValueInfoProto init_value = FICUS_ONNX__VALUE_INFO_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__value_info_proto__get_packed_size
                     (const FicusOnnx__ValueInfoProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__value_info_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__value_info_proto__pack
                     (const FicusOnnx__ValueInfoProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__value_info_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__value_info_proto__pack_to_buffer
                     (const FicusOnnx__ValueInfoProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__value_info_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__ValueInfoProto *
       ficus_onnx__value_info_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__ValueInfoProto *)
     protobuf_c_message_unpack (&ficus_onnx__value_info_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__value_info_proto__free_unpacked
                     (FicusOnnx__ValueInfoProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__value_info_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__node_proto__init
                     (FicusOnnx__NodeProto         *message)
{
  static const FicusOnnx__NodeProto init_value = FICUS_ONNX__NODE_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__node_proto__get_packed_size
                     (const FicusOnnx__NodeProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__node_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__node_proto__pack
                     (const FicusOnnx__NodeProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__node_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__node_proto__pack_to_buffer
                     (const FicusOnnx__NodeProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__node_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__NodeProto *
       ficus_onnx__node_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__NodeProto *)
     protobuf_c_message_unpack (&ficus_onnx__node_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__node_proto__free_unpacked
                     (FicusOnnx__NodeProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__node_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__training_info_proto__init
                     (FicusOnnx__TrainingInfoProto         *message)
{
  static const FicusOnnx__TrainingInfoProto init_value = FICUS_ONNX__TRAINING_INFO_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__training_info_proto__get_packed_size
                     (const FicusOnnx__TrainingInfoProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__training_info_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__training_info_proto__pack
                     (const FicusOnnx__TrainingInfoProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__training_info_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__training_info_proto__pack_to_buffer
                     (const FicusOnnx__TrainingInfoProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__training_info_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__TrainingInfoProto *
       ficus_onnx__training_info_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__TrainingInfoProto *)
     protobuf_c_message_unpack (&ficus_onnx__training_info_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__training_info_proto__free_unpacked
                     (FicusOnnx__TrainingInfoProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__training_info_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__model_proto__init
                     (FicusOnnx__ModelProto         *message)
{
  static const FicusOnnx__ModelProto init_value = FICUS_ONNX__MODEL_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__model_proto__get_packed_size
                     (const FicusOnnx__ModelProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__model_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__model_proto__pack
                     (const FicusOnnx__ModelProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__model_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__model_proto__pack_to_buffer
                     (const FicusOnnx__ModelProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__model_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__ModelProto *
       ficus_onnx__model_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__ModelProto *)
     protobuf_c_message_unpack (&ficus_onnx__model_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__model_proto__free_unpacked
                     (FicusOnnx__ModelProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__model_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__string_string_entry_proto__init
                     (FicusOnnx__StringStringEntryProto         *message)
{
  static const FicusOnnx__StringStringEntryProto init_value = FICUS_ONNX__STRING_STRING_ENTRY_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__string_string_entry_proto__get_packed_size
                     (const FicusOnnx__StringStringEntryProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__string_string_entry_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__string_string_entry_proto__pack
                     (const FicusOnnx__StringStringEntryProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__string_string_entry_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__string_string_entry_proto__pack_to_buffer
                     (const FicusOnnx__StringStringEntryProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__string_string_entry_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__StringStringEntryProto *
       ficus_onnx__string_string_entry_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__StringStringEntryProto *)
     protobuf_c_message_unpack (&ficus_onnx__string_string_entry_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__string_string_entry_proto__free_unpacked
                     (FicusOnnx__StringStringEntryProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__string_string_entry_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__tensor_annotation__init
                     (FicusOnnx__TensorAnnotation         *message)
{
  static const FicusOnnx__TensorAnnotation init_value = FICUS_ONNX__TENSOR_ANNOTATION__INIT;
  *message = init_value;
}
size_t ficus_onnx__tensor_annotation__get_packed_size
                     (const FicusOnnx__TensorAnnotation *message)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_annotation__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__tensor_annotation__pack
                     (const FicusOnnx__TensorAnnotation *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_annotation__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__tensor_annotation__pack_to_buffer
                     (const FicusOnnx__TensorAnnotation *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_annotation__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__TensorAnnotation *
       ficus_onnx__tensor_annotation__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__TensorAnnotation *)
     protobuf_c_message_unpack (&ficus_onnx__tensor_annotation__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__tensor_annotation__free_unpacked
                     (FicusOnnx__TensorAnnotation *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__tensor_annotation__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__graph_proto__init
                     (FicusOnnx__GraphProto         *message)
{
  static const FicusOnnx__GraphProto init_value = FICUS_ONNX__GRAPH_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__graph_proto__get_packed_size
                     (const FicusOnnx__GraphProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__graph_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__graph_proto__pack
                     (const FicusOnnx__GraphProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__graph_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__graph_proto__pack_to_buffer
                     (const FicusOnnx__GraphProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__graph_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__GraphProto *
       ficus_onnx__graph_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__GraphProto *)
     protobuf_c_message_unpack (&ficus_onnx__graph_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__graph_proto__free_unpacked
                     (FicusOnnx__GraphProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__graph_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__tensor_proto__segment__init
                     (FicusOnnx__TensorProto__Segment         *message)
{
  static const FicusOnnx__TensorProto__Segment init_value = FICUS_ONNX__TENSOR_PROTO__SEGMENT__INIT;
  *message = init_value;
}
void   ficus_onnx__tensor_proto__init
                     (FicusOnnx__TensorProto         *message)
{
  static const FicusOnnx__TensorProto init_value = FICUS_ONNX__TENSOR_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__tensor_proto__get_packed_size
                     (const FicusOnnx__TensorProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__tensor_proto__pack
                     (const FicusOnnx__TensorProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__tensor_proto__pack_to_buffer
                     (const FicusOnnx__TensorProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__TensorProto *
       ficus_onnx__tensor_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__TensorProto *)
     protobuf_c_message_unpack (&ficus_onnx__tensor_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__tensor_proto__free_unpacked
                     (FicusOnnx__TensorProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__tensor_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__sparse_tensor_proto__init
                     (FicusOnnx__SparseTensorProto         *message)
{
  static const FicusOnnx__SparseTensorProto init_value = FICUS_ONNX__SPARSE_TENSOR_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__sparse_tensor_proto__get_packed_size
                     (const FicusOnnx__SparseTensorProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__sparse_tensor_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__sparse_tensor_proto__pack
                     (const FicusOnnx__SparseTensorProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__sparse_tensor_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__sparse_tensor_proto__pack_to_buffer
                     (const FicusOnnx__SparseTensorProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__sparse_tensor_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__SparseTensorProto *
       ficus_onnx__sparse_tensor_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__SparseTensorProto *)
     protobuf_c_message_unpack (&ficus_onnx__sparse_tensor_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__sparse_tensor_proto__free_unpacked
                     (FicusOnnx__SparseTensorProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__sparse_tensor_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__tensor_shape_proto__dimension__init
                     (FicusOnnx__TensorShapeProto__Dimension         *message)
{
  static const FicusOnnx__TensorShapeProto__Dimension init_value = FICUS_ONNX__TENSOR_SHAPE_PROTO__DIMENSION__INIT;
  *message = init_value;
}
void   ficus_onnx__tensor_shape_proto__init
                     (FicusOnnx__TensorShapeProto         *message)
{
  static const FicusOnnx__TensorShapeProto init_value = FICUS_ONNX__TENSOR_SHAPE_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__tensor_shape_proto__get_packed_size
                     (const FicusOnnx__TensorShapeProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_shape_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__tensor_shape_proto__pack
                     (const FicusOnnx__TensorShapeProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_shape_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__tensor_shape_proto__pack_to_buffer
                     (const FicusOnnx__TensorShapeProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__tensor_shape_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__TensorShapeProto *
       ficus_onnx__tensor_shape_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__TensorShapeProto *)
     protobuf_c_message_unpack (&ficus_onnx__tensor_shape_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__tensor_shape_proto__free_unpacked
                     (FicusOnnx__TensorShapeProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__tensor_shape_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__type_proto__tensor__init
                     (FicusOnnx__TypeProto__Tensor         *message)
{
  static const FicusOnnx__TypeProto__Tensor init_value = FICUS_ONNX__TYPE_PROTO__TENSOR__INIT;
  *message = init_value;
}
void   ficus_onnx__type_proto__sequence__init
                     (FicusOnnx__TypeProto__Sequence         *message)
{
  static const FicusOnnx__TypeProto__Sequence init_value = FICUS_ONNX__TYPE_PROTO__SEQUENCE__INIT;
  *message = init_value;
}
void   ficus_onnx__type_proto__map__init
                     (FicusOnnx__TypeProto__Map         *message)
{
  static const FicusOnnx__TypeProto__Map init_value = FICUS_ONNX__TYPE_PROTO__MAP__INIT;
  *message = init_value;
}
void   ficus_onnx__type_proto__optional__init
                     (FicusOnnx__TypeProto__Optional         *message)
{
  static const FicusOnnx__TypeProto__Optional init_value = FICUS_ONNX__TYPE_PROTO__OPTIONAL__INIT;
  *message = init_value;
}
void   ficus_onnx__type_proto__sparse_tensor__init
                     (FicusOnnx__TypeProto__SparseTensor         *message)
{
  static const FicusOnnx__TypeProto__SparseTensor init_value = FICUS_ONNX__TYPE_PROTO__SPARSE_TENSOR__INIT;
  *message = init_value;
}
void   ficus_onnx__type_proto__init
                     (FicusOnnx__TypeProto         *message)
{
  static const FicusOnnx__TypeProto init_value = FICUS_ONNX__TYPE_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__type_proto__get_packed_size
                     (const FicusOnnx__TypeProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__type_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__type_proto__pack
                     (const FicusOnnx__TypeProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__type_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__type_proto__pack_to_buffer
                     (const FicusOnnx__TypeProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__type_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__TypeProto *
       ficus_onnx__type_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__TypeProto *)
     protobuf_c_message_unpack (&ficus_onnx__type_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__type_proto__free_unpacked
                     (FicusOnnx__TypeProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__type_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__operator_set_id_proto__init
                     (FicusOnnx__OperatorSetIdProto         *message)
{
  static const FicusOnnx__OperatorSetIdProto init_value = FICUS_ONNX__OPERATOR_SET_ID_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__operator_set_id_proto__get_packed_size
                     (const FicusOnnx__OperatorSetIdProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__operator_set_id_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__operator_set_id_proto__pack
                     (const FicusOnnx__OperatorSetIdProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__operator_set_id_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__operator_set_id_proto__pack_to_buffer
                     (const FicusOnnx__OperatorSetIdProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__operator_set_id_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__OperatorSetIdProto *
       ficus_onnx__operator_set_id_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__OperatorSetIdProto *)
     protobuf_c_message_unpack (&ficus_onnx__operator_set_id_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__operator_set_id_proto__free_unpacked
                     (FicusOnnx__OperatorSetIdProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__operator_set_id_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   ficus_onnx__function_proto__init
                     (FicusOnnx__FunctionProto         *message)
{
  static const FicusOnnx__FunctionProto init_value = FICUS_ONNX__FUNCTION_PROTO__INIT;
  *message = init_value;
}
size_t ficus_onnx__function_proto__get_packed_size
                     (const FicusOnnx__FunctionProto *message)
{
  assert(message->base.descriptor == &ficus_onnx__function_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t ficus_onnx__function_proto__pack
                     (const FicusOnnx__FunctionProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &ficus_onnx__function_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t ficus_onnx__function_proto__pack_to_buffer
                     (const FicusOnnx__FunctionProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &ficus_onnx__function_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FicusOnnx__FunctionProto *
       ficus_onnx__function_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FicusOnnx__FunctionProto *)
     protobuf_c_message_unpack (&ficus_onnx__function_proto__descriptor,
                                allocator, len, data);
}
void   ficus_onnx__function_proto__free_unpacked
                     (FicusOnnx__FunctionProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &ficus_onnx__function_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCEnumValue ficus_onnx__attribute_proto__attribute_type__enum_values_by_number[15] =
{
  { "UNDEFINED", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__UNDEFINED", 0 },
  { "FLOAT", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOAT", 1 },
  { "INT", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INT", 2 },
  { "STRING", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRING", 3 },
  { "TENSOR", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSOR", 4 },
  { "GRAPH", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPH", 5 },
  { "FLOATS", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOATS", 6 },
  { "INTS", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INTS", 7 },
  { "STRINGS", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRINGS", 8 },
  { "TENSORS", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSORS", 9 },
  { "GRAPHS", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPHS", 10 },
  { "SPARSE_TENSOR", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__SPARSE_TENSOR", 11 },
  { "SPARSE_TENSORS", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__SPARSE_TENSORS", 12 },
  { "TYPE_PROTO", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TYPE_PROTO", 13 },
  { "TYPE_PROTOS", "FICUS_ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TYPE_PROTOS", 14 },
};
static const ProtobufCIntRange ficus_onnx__attribute_proto__attribute_type__value_ranges[] = {
{0, 0},{0, 15}
};
static const ProtobufCEnumValueIndex ficus_onnx__attribute_proto__attribute_type__enum_values_by_name[15] =
{
  { "FLOAT", 1 },
  { "FLOATS", 6 },
  { "GRAPH", 5 },
  { "GRAPHS", 10 },
  { "INT", 2 },
  { "INTS", 7 },
  { "SPARSE_TENSOR", 11 },
  { "SPARSE_TENSORS", 12 },
  { "STRING", 3 },
  { "STRINGS", 8 },
  { "TENSOR", 4 },
  { "TENSORS", 9 },
  { "TYPE_PROTO", 13 },
  { "TYPE_PROTOS", 14 },
  { "UNDEFINED", 0 },
};
const ProtobufCEnumDescriptor ficus_onnx__attribute_proto__attribute_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "ficus_onnx.AttributeProto.AttributeType",
  "AttributeType",
  "FicusOnnx__AttributeProto__AttributeType",
  "ficus_onnx",
  15,
  ficus_onnx__attribute_proto__attribute_type__enum_values_by_number,
  15,
  ficus_onnx__attribute_proto__attribute_type__enum_values_by_name,
  1,
  ficus_onnx__attribute_proto__attribute_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor ficus_onnx__attribute_proto__field_descriptors[18] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "f",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FLOAT,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, f),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "i",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, i),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "s",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, s),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "t",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, t),
    &ficus_onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "g",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, g),
    &ficus_onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "floats",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_FLOAT,
    offsetof(FicusOnnx__AttributeProto, n_floats),
    offsetof(FicusOnnx__AttributeProto, floats),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "ints",
    8,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(FicusOnnx__AttributeProto, n_ints),
    offsetof(FicusOnnx__AttributeProto, ints),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "strings",
    9,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(FicusOnnx__AttributeProto, n_strings),
    offsetof(FicusOnnx__AttributeProto, strings),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "tensors",
    10,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__AttributeProto, n_tensors),
    offsetof(FicusOnnx__AttributeProto, tensors),
    &ficus_onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "graphs",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__AttributeProto, n_graphs),
    offsetof(FicusOnnx__AttributeProto, graphs),
    &ficus_onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    13,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "tp",
    14,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, tp),
    &ficus_onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "type_protos",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__AttributeProto, n_type_protos),
    offsetof(FicusOnnx__AttributeProto, type_protos),
    &ficus_onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "type",
    20,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, type),
    &ficus_onnx__attribute_proto__attribute_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "ref_attr_name",
    21,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, ref_attr_name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sparse_tensor",
    22,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__AttributeProto, sparse_tensor),
    &ficus_onnx__sparse_tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sparse_tensors",
    23,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__AttributeProto, n_sparse_tensors),
    offsetof(FicusOnnx__AttributeProto, sparse_tensors),
    &ficus_onnx__sparse_tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__attribute_proto__field_indices_by_name[] = {
  11,   /* field[11] = doc_string */
  1,   /* field[1] = f */
  6,   /* field[6] = floats */
  5,   /* field[5] = g */
  10,   /* field[10] = graphs */
  2,   /* field[2] = i */
  7,   /* field[7] = ints */
  0,   /* field[0] = name */
  15,   /* field[15] = ref_attr_name */
  3,   /* field[3] = s */
  16,   /* field[16] = sparse_tensor */
  17,   /* field[17] = sparse_tensors */
  8,   /* field[8] = strings */
  4,   /* field[4] = t */
  9,   /* field[9] = tensors */
  12,   /* field[12] = tp */
  14,   /* field[14] = type */
  13,   /* field[13] = type_protos */
};
static const ProtobufCIntRange ficus_onnx__attribute_proto__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 13, 11 },
  { 20, 14 },
  { 0, 18 }
};
const ProtobufCMessageDescriptor ficus_onnx__attribute_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.AttributeProto",
  "AttributeProto",
  "FicusOnnx__AttributeProto",
  "ficus_onnx",
  sizeof(FicusOnnx__AttributeProto),
  18,
  ficus_onnx__attribute_proto__field_descriptors,
  ficus_onnx__attribute_proto__field_indices_by_name,
  3,  ficus_onnx__attribute_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__attribute_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__value_info_proto__field_descriptors[3] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ValueInfoProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "type",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ValueInfoProto, type),
    &ficus_onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ValueInfoProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__value_info_proto__field_indices_by_name[] = {
  2,   /* field[2] = doc_string */
  0,   /* field[0] = name */
  1,   /* field[1] = type */
};
static const ProtobufCIntRange ficus_onnx__value_info_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor ficus_onnx__value_info_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.ValueInfoProto",
  "ValueInfoProto",
  "FicusOnnx__ValueInfoProto",
  "ficus_onnx",
  sizeof(FicusOnnx__ValueInfoProto),
  3,
  ficus_onnx__value_info_proto__field_descriptors,
  ficus_onnx__value_info_proto__field_indices_by_name,
  1,  ficus_onnx__value_info_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__value_info_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__node_proto__field_descriptors[7] =
{
  {
    "input",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(FicusOnnx__NodeProto, n_input),
    offsetof(FicusOnnx__NodeProto, input),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "output",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(FicusOnnx__NodeProto, n_output),
    offsetof(FicusOnnx__NodeProto, output),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__NodeProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "op_type",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__NodeProto, op_type),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "attribute",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__NodeProto, n_attribute),
    offsetof(FicusOnnx__NodeProto, attribute),
    &ficus_onnx__attribute_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__NodeProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "domain",
    7,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__NodeProto, domain),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__node_proto__field_indices_by_name[] = {
  4,   /* field[4] = attribute */
  5,   /* field[5] = doc_string */
  6,   /* field[6] = domain */
  0,   /* field[0] = input */
  2,   /* field[2] = name */
  3,   /* field[3] = op_type */
  1,   /* field[1] = output */
};
static const ProtobufCIntRange ficus_onnx__node_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 7 }
};
const ProtobufCMessageDescriptor ficus_onnx__node_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.NodeProto",
  "NodeProto",
  "FicusOnnx__NodeProto",
  "ficus_onnx",
  sizeof(FicusOnnx__NodeProto),
  7,
  ficus_onnx__node_proto__field_descriptors,
  ficus_onnx__node_proto__field_indices_by_name,
  1,  ficus_onnx__node_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__node_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__training_info_proto__field_descriptors[4] =
{
  {
    "initialization",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TrainingInfoProto, initialization),
    &ficus_onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "algorithm",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TrainingInfoProto, algorithm),
    &ficus_onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "initialization_binding",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TrainingInfoProto, n_initialization_binding),
    offsetof(FicusOnnx__TrainingInfoProto, initialization_binding),
    &ficus_onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "update_binding",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TrainingInfoProto, n_update_binding),
    offsetof(FicusOnnx__TrainingInfoProto, update_binding),
    &ficus_onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__training_info_proto__field_indices_by_name[] = {
  1,   /* field[1] = algorithm */
  0,   /* field[0] = initialization */
  2,   /* field[2] = initialization_binding */
  3,   /* field[3] = update_binding */
};
static const ProtobufCIntRange ficus_onnx__training_info_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor ficus_onnx__training_info_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TrainingInfoProto",
  "TrainingInfoProto",
  "FicusOnnx__TrainingInfoProto",
  "ficus_onnx",
  sizeof(FicusOnnx__TrainingInfoProto),
  4,
  ficus_onnx__training_info_proto__field_descriptors,
  ficus_onnx__training_info_proto__field_indices_by_name,
  1,  ficus_onnx__training_info_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__training_info_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__model_proto__field_descriptors[11] =
{
  {
    "ir_version",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ModelProto, ir_version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "producer_name",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ModelProto, producer_name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "producer_version",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ModelProto, producer_version),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "domain",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ModelProto, domain),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "model_version",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ModelProto, model_version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ModelProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "graph",
    7,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__ModelProto, graph),
    &ficus_onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "opset_import",
    8,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__ModelProto, n_opset_import),
    offsetof(FicusOnnx__ModelProto, opset_import),
    &ficus_onnx__operator_set_id_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "metadata_props",
    14,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__ModelProto, n_metadata_props),
    offsetof(FicusOnnx__ModelProto, metadata_props),
    &ficus_onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "training_info",
    20,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__ModelProto, n_training_info),
    offsetof(FicusOnnx__ModelProto, training_info),
    &ficus_onnx__training_info_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "functions",
    25,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__ModelProto, n_functions),
    offsetof(FicusOnnx__ModelProto, functions),
    &ficus_onnx__function_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__model_proto__field_indices_by_name[] = {
  5,   /* field[5] = doc_string */
  3,   /* field[3] = domain */
  10,   /* field[10] = functions */
  6,   /* field[6] = graph */
  0,   /* field[0] = ir_version */
  8,   /* field[8] = metadata_props */
  4,   /* field[4] = model_version */
  7,   /* field[7] = opset_import */
  1,   /* field[1] = producer_name */
  2,   /* field[2] = producer_version */
  9,   /* field[9] = training_info */
};
static const ProtobufCIntRange ficus_onnx__model_proto__number_ranges[4 + 1] =
{
  { 1, 0 },
  { 14, 8 },
  { 20, 9 },
  { 25, 10 },
  { 0, 11 }
};
const ProtobufCMessageDescriptor ficus_onnx__model_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.ModelProto",
  "ModelProto",
  "FicusOnnx__ModelProto",
  "ficus_onnx",
  sizeof(FicusOnnx__ModelProto),
  11,
  ficus_onnx__model_proto__field_descriptors,
  ficus_onnx__model_proto__field_indices_by_name,
  4,  ficus_onnx__model_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__model_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__string_string_entry_proto__field_descriptors[2] =
{
  {
    "key",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__StringStringEntryProto, key),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "value",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__StringStringEntryProto, value),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__string_string_entry_proto__field_indices_by_name[] = {
  0,   /* field[0] = key */
  1,   /* field[1] = value */
};
static const ProtobufCIntRange ficus_onnx__string_string_entry_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor ficus_onnx__string_string_entry_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.StringStringEntryProto",
  "StringStringEntryProto",
  "FicusOnnx__StringStringEntryProto",
  "ficus_onnx",
  sizeof(FicusOnnx__StringStringEntryProto),
  2,
  ficus_onnx__string_string_entry_proto__field_descriptors,
  ficus_onnx__string_string_entry_proto__field_indices_by_name,
  1,  ficus_onnx__string_string_entry_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__string_string_entry_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__tensor_annotation__field_descriptors[2] =
{
  {
    "tensor_name",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorAnnotation, tensor_name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quant_parameter_tensor_names",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TensorAnnotation, n_quant_parameter_tensor_names),
    offsetof(FicusOnnx__TensorAnnotation, quant_parameter_tensor_names),
    &ficus_onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__tensor_annotation__field_indices_by_name[] = {
  1,   /* field[1] = quant_parameter_tensor_names */
  0,   /* field[0] = tensor_name */
};
static const ProtobufCIntRange ficus_onnx__tensor_annotation__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor ficus_onnx__tensor_annotation__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TensorAnnotation",
  "TensorAnnotation",
  "FicusOnnx__TensorAnnotation",
  "ficus_onnx",
  sizeof(FicusOnnx__TensorAnnotation),
  2,
  ficus_onnx__tensor_annotation__field_descriptors,
  ficus_onnx__tensor_annotation__field_indices_by_name,
  1,  ficus_onnx__tensor_annotation__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__tensor_annotation__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__graph_proto__field_descriptors[9] =
{
  {
    "node",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__GraphProto, n_node),
    offsetof(FicusOnnx__GraphProto, node),
    &ficus_onnx__node_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__GraphProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "initializer",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__GraphProto, n_initializer),
    offsetof(FicusOnnx__GraphProto, initializer),
    &ficus_onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    10,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__GraphProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "input",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__GraphProto, n_input),
    offsetof(FicusOnnx__GraphProto, input),
    &ficus_onnx__value_info_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "output",
    12,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__GraphProto, n_output),
    offsetof(FicusOnnx__GraphProto, output),
    &ficus_onnx__value_info_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "value_info",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__GraphProto, n_value_info),
    offsetof(FicusOnnx__GraphProto, value_info),
    &ficus_onnx__value_info_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quantization_annotation",
    14,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__GraphProto, n_quantization_annotation),
    offsetof(FicusOnnx__GraphProto, quantization_annotation),
    &ficus_onnx__tensor_annotation__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sparse_initializer",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__GraphProto, n_sparse_initializer),
    offsetof(FicusOnnx__GraphProto, sparse_initializer),
    &ficus_onnx__sparse_tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__graph_proto__field_indices_by_name[] = {
  3,   /* field[3] = doc_string */
  2,   /* field[2] = initializer */
  4,   /* field[4] = input */
  1,   /* field[1] = name */
  0,   /* field[0] = node */
  5,   /* field[5] = output */
  7,   /* field[7] = quantization_annotation */
  8,   /* field[8] = sparse_initializer */
  6,   /* field[6] = value_info */
};
static const ProtobufCIntRange ficus_onnx__graph_proto__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 5, 2 },
  { 10, 3 },
  { 0, 9 }
};
const ProtobufCMessageDescriptor ficus_onnx__graph_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.GraphProto",
  "GraphProto",
  "FicusOnnx__GraphProto",
  "ficus_onnx",
  sizeof(FicusOnnx__GraphProto),
  9,
  ficus_onnx__graph_proto__field_descriptors,
  ficus_onnx__graph_proto__field_indices_by_name,
  3,  ficus_onnx__graph_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__graph_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__tensor_proto__segment__field_descriptors[2] =
{
  {
    "begin",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorProto__Segment, begin),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorProto__Segment, end),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__tensor_proto__segment__field_indices_by_name[] = {
  0,   /* field[0] = begin */
  1,   /* field[1] = end */
};
static const ProtobufCIntRange ficus_onnx__tensor_proto__segment__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor ficus_onnx__tensor_proto__segment__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TensorProto.Segment",
  "Segment",
  "FicusOnnx__TensorProto__Segment",
  "ficus_onnx",
  sizeof(FicusOnnx__TensorProto__Segment),
  2,
  ficus_onnx__tensor_proto__segment__field_descriptors,
  ficus_onnx__tensor_proto__segment__field_indices_by_name,
  1,  ficus_onnx__tensor_proto__segment__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__tensor_proto__segment__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue ficus_onnx__tensor_proto__data_type__enum_values_by_number[17] =
{
  { "UNDEFINED", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__UNDEFINED", 0 },
  { "FLOAT", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT", 1 },
  { "UINT8", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__UINT8", 2 },
  { "INT8", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__INT8", 3 },
  { "UINT16", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__UINT16", 4 },
  { "INT16", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__INT16", 5 },
  { "INT32", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__INT32", 6 },
  { "INT64", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__INT64", 7 },
  { "STRING", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__STRING", 8 },
  { "BOOL", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__BOOL", 9 },
  { "FLOAT16", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT16", 10 },
  { "DOUBLE", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__DOUBLE", 11 },
  { "UINT32", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__UINT32", 12 },
  { "UINT64", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__UINT64", 13 },
  { "COMPLEX64", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX64", 14 },
  { "COMPLEX128", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX128", 15 },
  { "BFLOAT16", "FICUS_ONNX__TENSOR_PROTO__DATA_TYPE__BFLOAT16", 16 },
};
static const ProtobufCIntRange ficus_onnx__tensor_proto__data_type__value_ranges[] = {
{0, 0},{0, 17}
};
static const ProtobufCEnumValueIndex ficus_onnx__tensor_proto__data_type__enum_values_by_name[17] =
{
  { "BFLOAT16", 16 },
  { "BOOL", 9 },
  { "COMPLEX128", 15 },
  { "COMPLEX64", 14 },
  { "DOUBLE", 11 },
  { "FLOAT", 1 },
  { "FLOAT16", 10 },
  { "INT16", 5 },
  { "INT32", 6 },
  { "INT64", 7 },
  { "INT8", 3 },
  { "STRING", 8 },
  { "UINT16", 4 },
  { "UINT32", 12 },
  { "UINT64", 13 },
  { "UINT8", 2 },
  { "UNDEFINED", 0 },
};
const ProtobufCEnumDescriptor ficus_onnx__tensor_proto__data_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "ficus_onnx.TensorProto.DataType",
  "DataType",
  "FicusOnnx__TensorProto__DataType",
  "ficus_onnx",
  17,
  ficus_onnx__tensor_proto__data_type__enum_values_by_number,
  17,
  ficus_onnx__tensor_proto__data_type__enum_values_by_name,
  1,
  ficus_onnx__tensor_proto__data_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue ficus_onnx__tensor_proto__data_location__enum_values_by_number[2] =
{
  { "DEFAULT", "FICUS_ONNX__TENSOR_PROTO__DATA_LOCATION__DEFAULT", 0 },
  { "EXTERNAL", "FICUS_ONNX__TENSOR_PROTO__DATA_LOCATION__EXTERNAL", 1 },
};
static const ProtobufCIntRange ficus_onnx__tensor_proto__data_location__value_ranges[] = {
{0, 0},{0, 2}
};
static const ProtobufCEnumValueIndex ficus_onnx__tensor_proto__data_location__enum_values_by_name[2] =
{
  { "DEFAULT", 0 },
  { "EXTERNAL", 1 },
};
const ProtobufCEnumDescriptor ficus_onnx__tensor_proto__data_location__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "ficus_onnx.TensorProto.DataLocation",
  "DataLocation",
  "FicusOnnx__TensorProto__DataLocation",
  "ficus_onnx",
  2,
  ficus_onnx__tensor_proto__data_location__enum_values_by_number,
  2,
  ficus_onnx__tensor_proto__data_location__enum_values_by_name,
  1,
  ficus_onnx__tensor_proto__data_location__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor ficus_onnx__tensor_proto__field_descriptors[14] =
{
  {
    "dims",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(FicusOnnx__TensorProto, n_dims),
    offsetof(FicusOnnx__TensorProto, dims),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "data_type",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorProto, data_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "segment",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorProto, segment),
    &ficus_onnx__tensor_proto__segment__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "float_data",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_FLOAT,
    offsetof(FicusOnnx__TensorProto, n_float_data),
    offsetof(FicusOnnx__TensorProto, float_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "int32_data",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT32,
    offsetof(FicusOnnx__TensorProto, n_int32_data),
    offsetof(FicusOnnx__TensorProto, int32_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "string_data",
    6,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(FicusOnnx__TensorProto, n_string_data),
    offsetof(FicusOnnx__TensorProto, string_data),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "int64_data",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(FicusOnnx__TensorProto, n_int64_data),
    offsetof(FicusOnnx__TensorProto, int64_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    8,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "raw_data",
    9,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorProto, raw_data),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "double_data",
    10,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(FicusOnnx__TensorProto, n_double_data),
    offsetof(FicusOnnx__TensorProto, double_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "uint64_data",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(FicusOnnx__TensorProto, n_uint64_data),
    offsetof(FicusOnnx__TensorProto, uint64_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    12,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "external_data",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TensorProto, n_external_data),
    offsetof(FicusOnnx__TensorProto, external_data),
    &ficus_onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "data_location",
    14,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorProto, data_location),
    &ficus_onnx__tensor_proto__data_location__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__tensor_proto__field_indices_by_name[] = {
  13,   /* field[13] = data_location */
  1,   /* field[1] = data_type */
  0,   /* field[0] = dims */
  11,   /* field[11] = doc_string */
  9,   /* field[9] = double_data */
  12,   /* field[12] = external_data */
  3,   /* field[3] = float_data */
  4,   /* field[4] = int32_data */
  6,   /* field[6] = int64_data */
  7,   /* field[7] = name */
  8,   /* field[8] = raw_data */
  2,   /* field[2] = segment */
  5,   /* field[5] = string_data */
  10,   /* field[10] = uint64_data */
};
static const ProtobufCIntRange ficus_onnx__tensor_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 14 }
};
const ProtobufCMessageDescriptor ficus_onnx__tensor_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TensorProto",
  "TensorProto",
  "FicusOnnx__TensorProto",
  "ficus_onnx",
  sizeof(FicusOnnx__TensorProto),
  14,
  ficus_onnx__tensor_proto__field_descriptors,
  ficus_onnx__tensor_proto__field_indices_by_name,
  1,  ficus_onnx__tensor_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__tensor_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__sparse_tensor_proto__field_descriptors[3] =
{
  {
    "values",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__SparseTensorProto, values),
    &ficus_onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "indices",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__SparseTensorProto, indices),
    &ficus_onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dims",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(FicusOnnx__SparseTensorProto, n_dims),
    offsetof(FicusOnnx__SparseTensorProto, dims),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__sparse_tensor_proto__field_indices_by_name[] = {
  2,   /* field[2] = dims */
  1,   /* field[1] = indices */
  0,   /* field[0] = values */
};
static const ProtobufCIntRange ficus_onnx__sparse_tensor_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor ficus_onnx__sparse_tensor_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.SparseTensorProto",
  "SparseTensorProto",
  "FicusOnnx__SparseTensorProto",
  "ficus_onnx",
  sizeof(FicusOnnx__SparseTensorProto),
  3,
  ficus_onnx__sparse_tensor_proto__field_descriptors,
  ficus_onnx__sparse_tensor_proto__field_indices_by_name,
  1,  ficus_onnx__sparse_tensor_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__sparse_tensor_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__tensor_shape_proto__dimension__field_descriptors[3] =
{
  {
    "dim_value",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    offsetof(FicusOnnx__TensorShapeProto__Dimension, value_case),
    offsetof(FicusOnnx__TensorShapeProto__Dimension, dim_value),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dim_param",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    offsetof(FicusOnnx__TensorShapeProto__Dimension, value_case),
    offsetof(FicusOnnx__TensorShapeProto__Dimension, dim_param),
    NULL,
    &protobuf_c_empty_string,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "denotation",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TensorShapeProto__Dimension, denotation),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__tensor_shape_proto__dimension__field_indices_by_name[] = {
  2,   /* field[2] = denotation */
  1,   /* field[1] = dim_param */
  0,   /* field[0] = dim_value */
};
static const ProtobufCIntRange ficus_onnx__tensor_shape_proto__dimension__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor ficus_onnx__tensor_shape_proto__dimension__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TensorShapeProto.Dimension",
  "Dimension",
  "FicusOnnx__TensorShapeProto__Dimension",
  "ficus_onnx",
  sizeof(FicusOnnx__TensorShapeProto__Dimension),
  3,
  ficus_onnx__tensor_shape_proto__dimension__field_descriptors,
  ficus_onnx__tensor_shape_proto__dimension__field_indices_by_name,
  1,  ficus_onnx__tensor_shape_proto__dimension__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__tensor_shape_proto__dimension__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__tensor_shape_proto__field_descriptors[1] =
{
  {
    "dim",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TensorShapeProto, n_dim),
    offsetof(FicusOnnx__TensorShapeProto, dim),
    &ficus_onnx__tensor_shape_proto__dimension__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__tensor_shape_proto__field_indices_by_name[] = {
  0,   /* field[0] = dim */
};
static const ProtobufCIntRange ficus_onnx__tensor_shape_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor ficus_onnx__tensor_shape_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TensorShapeProto",
  "TensorShapeProto",
  "FicusOnnx__TensorShapeProto",
  "ficus_onnx",
  sizeof(FicusOnnx__TensorShapeProto),
  1,
  ficus_onnx__tensor_shape_proto__field_descriptors,
  ficus_onnx__tensor_shape_proto__field_indices_by_name,
  1,  ficus_onnx__tensor_shape_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__tensor_shape_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__type_proto__tensor__field_descriptors[2] =
{
  {
    "elem_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto__Tensor, elem_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "shape",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto__Tensor, shape),
    &ficus_onnx__tensor_shape_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__type_proto__tensor__field_indices_by_name[] = {
  0,   /* field[0] = elem_type */
  1,   /* field[1] = shape */
};
static const ProtobufCIntRange ficus_onnx__type_proto__tensor__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor ficus_onnx__type_proto__tensor__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TypeProto.Tensor",
  "Tensor",
  "FicusOnnx__TypeProto__Tensor",
  "ficus_onnx",
  sizeof(FicusOnnx__TypeProto__Tensor),
  2,
  ficus_onnx__type_proto__tensor__field_descriptors,
  ficus_onnx__type_proto__tensor__field_indices_by_name,
  1,  ficus_onnx__type_proto__tensor__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__type_proto__tensor__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__type_proto__sequence__field_descriptors[1] =
{
  {
    "elem_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto__Sequence, elem_type),
    &ficus_onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__type_proto__sequence__field_indices_by_name[] = {
  0,   /* field[0] = elem_type */
};
static const ProtobufCIntRange ficus_onnx__type_proto__sequence__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor ficus_onnx__type_proto__sequence__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TypeProto.Sequence",
  "Sequence",
  "FicusOnnx__TypeProto__Sequence",
  "ficus_onnx",
  sizeof(FicusOnnx__TypeProto__Sequence),
  1,
  ficus_onnx__type_proto__sequence__field_descriptors,
  ficus_onnx__type_proto__sequence__field_indices_by_name,
  1,  ficus_onnx__type_proto__sequence__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__type_proto__sequence__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__type_proto__map__field_descriptors[2] =
{
  {
    "key_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto__Map, key_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "value_type",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto__Map, value_type),
    &ficus_onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__type_proto__map__field_indices_by_name[] = {
  0,   /* field[0] = key_type */
  1,   /* field[1] = value_type */
};
static const ProtobufCIntRange ficus_onnx__type_proto__map__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor ficus_onnx__type_proto__map__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TypeProto.Map",
  "Map",
  "FicusOnnx__TypeProto__Map",
  "ficus_onnx",
  sizeof(FicusOnnx__TypeProto__Map),
  2,
  ficus_onnx__type_proto__map__field_descriptors,
  ficus_onnx__type_proto__map__field_indices_by_name,
  1,  ficus_onnx__type_proto__map__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__type_proto__map__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__type_proto__optional__field_descriptors[1] =
{
  {
    "elem_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto__Optional, elem_type),
    &ficus_onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__type_proto__optional__field_indices_by_name[] = {
  0,   /* field[0] = elem_type */
};
static const ProtobufCIntRange ficus_onnx__type_proto__optional__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor ficus_onnx__type_proto__optional__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TypeProto.Optional",
  "Optional",
  "FicusOnnx__TypeProto__Optional",
  "ficus_onnx",
  sizeof(FicusOnnx__TypeProto__Optional),
  1,
  ficus_onnx__type_proto__optional__field_descriptors,
  ficus_onnx__type_proto__optional__field_indices_by_name,
  1,  ficus_onnx__type_proto__optional__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__type_proto__optional__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__type_proto__sparse_tensor__field_descriptors[2] =
{
  {
    "elem_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto__SparseTensor, elem_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "shape",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto__SparseTensor, shape),
    &ficus_onnx__tensor_shape_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__type_proto__sparse_tensor__field_indices_by_name[] = {
  0,   /* field[0] = elem_type */
  1,   /* field[1] = shape */
};
static const ProtobufCIntRange ficus_onnx__type_proto__sparse_tensor__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor ficus_onnx__type_proto__sparse_tensor__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TypeProto.SparseTensor",
  "SparseTensor",
  "FicusOnnx__TypeProto__SparseTensor",
  "ficus_onnx",
  sizeof(FicusOnnx__TypeProto__SparseTensor),
  2,
  ficus_onnx__type_proto__sparse_tensor__field_descriptors,
  ficus_onnx__type_proto__sparse_tensor__field_indices_by_name,
  1,  ficus_onnx__type_proto__sparse_tensor__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__type_proto__sparse_tensor__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__type_proto__field_descriptors[6] =
{
  {
    "tensor_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TypeProto, value_case),
    offsetof(FicusOnnx__TypeProto, tensor_type),
    &ficus_onnx__type_proto__tensor__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sequence_type",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TypeProto, value_case),
    offsetof(FicusOnnx__TypeProto, sequence_type),
    &ficus_onnx__type_proto__sequence__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "map_type",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TypeProto, value_case),
    offsetof(FicusOnnx__TypeProto, map_type),
    &ficus_onnx__type_proto__map__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "denotation",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__TypeProto, denotation),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sparse_tensor_type",
    8,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TypeProto, value_case),
    offsetof(FicusOnnx__TypeProto, sparse_tensor_type),
    &ficus_onnx__type_proto__sparse_tensor__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "optional_type",
    9,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__TypeProto, value_case),
    offsetof(FicusOnnx__TypeProto, optional_type),
    &ficus_onnx__type_proto__optional__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__type_proto__field_indices_by_name[] = {
  3,   /* field[3] = denotation */
  2,   /* field[2] = map_type */
  5,   /* field[5] = optional_type */
  1,   /* field[1] = sequence_type */
  4,   /* field[4] = sparse_tensor_type */
  0,   /* field[0] = tensor_type */
};
static const ProtobufCIntRange ficus_onnx__type_proto__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 4, 1 },
  { 8, 4 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor ficus_onnx__type_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.TypeProto",
  "TypeProto",
  "FicusOnnx__TypeProto",
  "ficus_onnx",
  sizeof(FicusOnnx__TypeProto),
  6,
  ficus_onnx__type_proto__field_descriptors,
  ficus_onnx__type_proto__field_indices_by_name,
  3,  ficus_onnx__type_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__type_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__operator_set_id_proto__field_descriptors[2] =
{
  {
    "domain",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__OperatorSetIdProto, domain),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "version",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__OperatorSetIdProto, version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__operator_set_id_proto__field_indices_by_name[] = {
  0,   /* field[0] = domain */
  1,   /* field[1] = version */
};
static const ProtobufCIntRange ficus_onnx__operator_set_id_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor ficus_onnx__operator_set_id_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.OperatorSetIdProto",
  "OperatorSetIdProto",
  "FicusOnnx__OperatorSetIdProto",
  "ficus_onnx",
  sizeof(FicusOnnx__OperatorSetIdProto),
  2,
  ficus_onnx__operator_set_id_proto__field_descriptors,
  ficus_onnx__operator_set_id_proto__field_indices_by_name,
  1,  ficus_onnx__operator_set_id_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__operator_set_id_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor ficus_onnx__function_proto__field_descriptors[8] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__FunctionProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "input",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(FicusOnnx__FunctionProto, n_input),
    offsetof(FicusOnnx__FunctionProto, input),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "output",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(FicusOnnx__FunctionProto, n_output),
    offsetof(FicusOnnx__FunctionProto, output),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "attribute",
    6,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(FicusOnnx__FunctionProto, n_attribute),
    offsetof(FicusOnnx__FunctionProto, attribute),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "node",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__FunctionProto, n_node),
    offsetof(FicusOnnx__FunctionProto, node),
    &ficus_onnx__node_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    8,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__FunctionProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "opset_import",
    9,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(FicusOnnx__FunctionProto, n_opset_import),
    offsetof(FicusOnnx__FunctionProto, opset_import),
    &ficus_onnx__operator_set_id_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "domain",
    10,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FicusOnnx__FunctionProto, domain),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned ficus_onnx__function_proto__field_indices_by_name[] = {
  3,   /* field[3] = attribute */
  5,   /* field[5] = doc_string */
  7,   /* field[7] = domain */
  1,   /* field[1] = input */
  0,   /* field[0] = name */
  4,   /* field[4] = node */
  6,   /* field[6] = opset_import */
  2,   /* field[2] = output */
};
static const ProtobufCIntRange ficus_onnx__function_proto__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 4, 1 },
  { 0, 8 }
};
const ProtobufCMessageDescriptor ficus_onnx__function_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ficus_onnx.FunctionProto",
  "FunctionProto",
  "FicusOnnx__FunctionProto",
  "ficus_onnx",
  sizeof(FicusOnnx__FunctionProto),
  8,
  ficus_onnx__function_proto__field_descriptors,
  ficus_onnx__function_proto__field_indices_by_name,
  2,  ficus_onnx__function_proto__number_ranges,
  (ProtobufCMessageInit) ficus_onnx__function_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue ficus_onnx__version__enum_values_by_number[9] =
{
  { "_START_VERSION", "FICUS_ONNX__VERSION___START_VERSION", 0 },
  { "IR_VERSION_2017_10_10", "FICUS_ONNX__VERSION__IR_VERSION_2017_10_10", 1 },
  { "IR_VERSION_2017_10_30", "FICUS_ONNX__VERSION__IR_VERSION_2017_10_30", 2 },
  { "IR_VERSION_2017_11_3", "FICUS_ONNX__VERSION__IR_VERSION_2017_11_3", 3 },
  { "IR_VERSION_2019_1_22", "FICUS_ONNX__VERSION__IR_VERSION_2019_1_22", 4 },
  { "IR_VERSION_2019_3_18", "FICUS_ONNX__VERSION__IR_VERSION_2019_3_18", 5 },
  { "IR_VERSION_2019_9_19", "FICUS_ONNX__VERSION__IR_VERSION_2019_9_19", 6 },
  { "IR_VERSION_2020_5_8", "FICUS_ONNX__VERSION__IR_VERSION_2020_5_8", 7 },
  { "IR_VERSION", "FICUS_ONNX__VERSION__IR_VERSION", 8 },
};
static const ProtobufCIntRange ficus_onnx__version__value_ranges[] = {
{0, 0},{0, 9}
};
static const ProtobufCEnumValueIndex ficus_onnx__version__enum_values_by_name[9] =
{
  { "IR_VERSION", 8 },
  { "IR_VERSION_2017_10_10", 1 },
  { "IR_VERSION_2017_10_30", 2 },
  { "IR_VERSION_2017_11_3", 3 },
  { "IR_VERSION_2019_1_22", 4 },
  { "IR_VERSION_2019_3_18", 5 },
  { "IR_VERSION_2019_9_19", 6 },
  { "IR_VERSION_2020_5_8", 7 },
  { "_START_VERSION", 0 },
};
const ProtobufCEnumDescriptor ficus_onnx__version__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "ficus_onnx.Version",
  "Version",
  "FicusOnnx__Version",
  "ficus_onnx",
  9,
  ficus_onnx__version__enum_values_by_number,
  9,
  ficus_onnx__version__enum_values_by_name,
  1,
  ficus_onnx__version__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue ficus_onnx__operator_status__enum_values_by_number[2] =
{
  { "EXPERIMENTAL", "FICUS_ONNX__OPERATOR_STATUS__EXPERIMENTAL", 0 },
  { "STABLE", "FICUS_ONNX__OPERATOR_STATUS__STABLE", 1 },
};
static const ProtobufCIntRange ficus_onnx__operator_status__value_ranges[] = {
{0, 0},{0, 2}
};
static const ProtobufCEnumValueIndex ficus_onnx__operator_status__enum_values_by_name[2] =
{
  { "EXPERIMENTAL", 0 },
  { "STABLE", 1 },
};
const ProtobufCEnumDescriptor ficus_onnx__operator_status__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "ficus_onnx.OperatorStatus",
  "OperatorStatus",
  "FicusOnnx__OperatorStatus",
  "ficus_onnx",
  2,
  ficus_onnx__operator_status__enum_values_by_number,
  2,
  ficus_onnx__operator_status__enum_values_by_name,
  1,
  ficus_onnx__operator_status__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
